我知道網路上已經有很多介紹 Design Pattern 的文章,不過因為我想就我自己的經驗來講一下這一個部分,不過一樣不會介紹很多種,大概會講一些之前我在工作中使用過的,其實在上課時就有上過這些東西,但是一直到了我去工作之後看到別人的程式碼,然後自己跟著學習、模仿之後才發現這個東西真的要好好學,不然永遠打出來的程式碼都零零落落,別人讀不懂,自己可能過兩三個月回來看也看不懂的窘境,所以今天就讓我們來介紹一下吧!
設計模式(Design Pattern) 是軟體設計中對於「反覆出現」的問題,提出的解決方案,這個詞其實是從建築領域來的,之後才被引用到電腦科學。
設計模式並不是從程式面來解決問題,不是教你怎麼寫程式,而是讓你知道在什麼情況,要用什麼方式去解決。
就如我上述所提到的「反覆出現」,如果今天你看到程式碼有許多重複的地方,那這是不是就代表我們應該想出某種「模式」,來解決重複出現的這個問題,不然如果今天要改程式碼,重複的地方太多的話會造成修改的困難,也表示這個程式的強健度不夠,而設計模式為的就是讓程式的穩定度提高,在修改、擴充的時候每個物件的耦合度降低,讓軟體達到「軟」的真正境界,靈活度、適應變化的能力增加。
註: 演算法不能算是設計模式,因為演算法是為了解決計算上的問題。
說到設計模式,大家想到的一定是 Gof 的 Design Pattern,這本經典的書籍,如果大家有時間也可以參考看看,那究竟設計模式分成哪幾類呢?
Creational
Structure
Behavior
參考資料:
https://openhome.cc/Gossip/DesignPattern/
https://zh.wikipedia.org/wiki/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F_(%E8%AE%A1%E7%AE%97%E6%9C%BA)